# 将列表传递给函数后，函数就可对其进行修改
# 函数中对这个列表所做的任何修改都是永久性的

#function_name(list_name[:])将列表的副本传递给函数

def print_model(unprinted_designs,completed_models):
    """Print model.打印模型。

    模拟打印每个设计，直到没有未打印的设计为止
    打印每个设计后，都将其移到列表completed_models中"""
# 模拟打印每个设计，直到没有未打印的设计为止
# 打印每个设计后，都将其移到列表completed_models中
    while unprinted_designs:
        current_design=unprinted_designs.pop()

        # 模拟根据设计制作3D打印模型的过程
        print("Printing model: "+current_design)
        completed_models.append(current_design)

def show_completed_models(completed_models):
    """Show completed models.显示打印好的所有模型。

    使用for...in遍历列表，并打印"""
# 显示打印好的所有模型
    print("\nThe following models have been printed:")
    for completed_model in completed_models:
        print(completed_model)

unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']
completed_models = []

print_model(unprinted_designs,completed_models)
show_completed_models(completed_models)

